package demo02;
/*
* try catch:处理异常的第二种方式
* 格式： try{
            可能产生异常的代码
        }catch(定义一个异常的变量,用来接收try中抛出的异常对象){
            异常的处理逻辑,异常异常对象之后,怎么处理异常对象
            一般在工作中,会把异常的信息记录到一个日志中
        }
        ...
        catch(异常类名 变量名){
        }
  注意：
        1.try 中可能抛出多个异常对象，可以使用多个catch来处理
        2.如果try中产生了异常,那么就会执行catch中的异常处理逻辑
          如果try中没有产生了异常,那么就不会执行catch中的异常处理逻辑
          反正最后都是要执行try catch以后的代码*/

import java.io.IOException;

public class Demo01TryCatch {
    public static void main(String[] args) {
        try {
            readFiles("byyl.txt");
            readFile("byy.txt");
        } catch (IOException e) {
            System.out.println(e);
            e.printStackTrace();
        }catch (NullPointerException e){
            e.printStackTrace();
        }
        System.out.println("反正最后都是要执行try catch以后的代码");
    }

    private static void readFiles(String fileName) throws IOException {
 /*       if (fileName.equals("byyl.txt") == false) {
            throw new FileNotFoundException("文件找不到");
        }*/
//            System.out.println("文件找到了");

        if (fileName.endsWith(".txt") == false) {
            throw new IOException("文件后缀名不对");
        }
        System.out.println("文件后缀名对");
    }

    private static void readFile(String fileName) throws NullPointerException {
        if (fileName.equals("byyl.txt") == false) {
            throw new NullPointerException("文件找不到");
        }
        System.out.println("文件找到了");
    }
}
